<!DOCTYPE html>
<html>

<head>
	<meta charset="utf-8">
	<title>this指向</title>
</head>

<body>

	<p> this指向</p>
	<p id="demo"></p>
	<script>

		// 用法1 普通函数-非严格模式  window（在浏览器中）
		function show1(){
			console.log("show1",this)
		}
		show1();


		
		// 用法2 普通函数-严格模式 undefined 
		function show2(){
			'use strict';
			console.log("show2",this)
		}
		show2();


		// 用法3 箭头函数中的 this（没有自己的 this）
		const obj = {
			name : "mdh",
			study: ()=>{
				console.log("study",this)
			}
		}
		obj.study()

		const obj2 = {
			name : "mdh2",
			study2: function(){
				console.log("study2",this)
			}
		}
		obj2.study2()


		const obj3 = {
			name : "mdh3",
			study3: setTimeout(()=>{
				console.log("study3",this)
			})
		}
		obj3.study3

		const obj4 = {
			name : "mdh4",
			study4: setTimeout(function(){
				console.log("study4",this)
			})
		}
		obj4.study4



	</script>

</body>

</html>